In creating computer programs, particularly for use on microcomputers such as personal computers, it is very important to design easy-to-understand display screens and windows (which we refer to collectively as external interfaces, or interfaces). During the operation of the program, most computer programs display information on a video display screen, and the user interacts via a keyboard with the underlying functions of the program by what appears on the display screen. In any given program there are many types of these external interfaces. At a minimum, most successful programs in this field currently contain interfaces consisting of initial instructions, menus, assitance or help screens and windows, lists of various options available to the user, and questions to which the user responds with answers that are passed back to the program.
These external computer interfaces "enable" the underlying program in that they allow the user to utilize the internal functions of the program. The productivity of the user is an important consideration during the design of a computer program. Poor design of these external interfaces can negatively impact the productivity of the user, and it is important for the program designer to make wise choices to minimize user effort.
When the external interfaces are not designed with the level of sophistication of the user in mind, the usesr wastes time and spends additional effort in learning and performing a task and in recovering from the effect of errors made during the task.
To insure that these interfaces meet the needs of the users, the industry has developed techniques for testing software interfaces with representative users and continually redesigning the interfaces for improving the human-computer interfaces. Unfortunately, with current practices, a realistic set of interfaces is generally available only towards the end of the computer program development cycle, when underlying program functions have been developed because a realistic prototype of the interfaces is generally prohibitively expensive. If usability testing uncovers problems with the external interfaces at this stage, correcting them may be difficult without impacting development resources or the development schedule. To be effective, usability testing must be done early enough in the development cycle of the application program to allow iterative design. Unfortunately, usability testing and iterative design are expensive, and it is difficult to do more than a few iterations without impacting the product schedule.
Computer programs are now commercially available for designing such interfaces; and these programs may be used to design such interfaces prior to coding the computer program. As an example, the EZ-VU development facility for the IBM Personal Computer, IBM Personal Computer Software No. 6410980, provides an interface screen design facility as a link between a display screen and the underlying application program. The EZ-VU program helps a programmer to design well-organized interfaces for communication between a user and the program written by the programmer. The EZ-VU type of program has greatly simplified the development and management of the interactive dialog between a program and the user.
Another such program is the IBM 5510 computing system Screen Design Aid, IBM Program No. 5798-NRH, which allows a user to design a screen on the 5110 computer, where it will be used. The Aid then translates the design and field definitions into source code.
A significant feature of these programs and a number of other similar ones which are commercially available is that the screen designed by the programmer is displayed exactly as the user will see it and can be changed to optimize the information on the display.
However, a major drawback of such interface screen design programs becomes apparent after all of the interfaces have been designed by the programmer. When these interfaces are executed as a simulation of a computer program by the programmer or by a user, the design of a particular part of the interface cannot be altered during the execution of the simulated program. This is a significant point because during the usability testing process a typical user often feels it necessary or desirable to rearrange, modify, add or delete some information on the interfaces or to change the relationships among the interfaces in the context of the task the user is attempting to accomplish.